gpsbabel.git
4 years agoFix doc references left for EasyGPS.
Robert Lipe [Thu, 17 Mar 2022 03:26:48 +0000 (22:26 -0500)]
Fix doc references left for EasyGPS.

4 years agoDelete destinator_itn destinator_poi destinator_trl easygps energympro enigma f90g...
Robert Lipe [Thu, 17 Mar 2022 01:55:19 +0000 (20:55 -0500)]
Delete destinator_itn destinator_poi destinator_trl easygps energympro enigma f90g flys ight fugawi from disuse.

4 years agoNits (#863)
tsteven4 [Mon, 14 Mar 2022 13:22:11 +0000 (07:22 -0600)]
Nits (#863)

* delete crumbs from deprecated formats.

* whitespace

4 years agoretire strsub, gstrsub. (#862)
tsteven4 [Fri, 11 Mar 2022 20:52:01 +0000 (13:52 -0700)]
retire strsub, gstrsub. (#862)

4 years agomisc improvements. (#861)
tsteven4 [Wed, 9 Mar 2022 16:34:26 +0000 (09:34 -0700)]
misc improvements. (#861)

* misc improvements.

fix memory leak in nmea reader.
eliminate extra string conversion using xml_parse_time.
use local QByteArray instead of xstrdup.
convert human_to_dec interface to QString.

* use strtod to track converted len in human_to_dec.

* enhance humantodec test.

4 years agoUse PImpl idiom to hide Format and Filter headers from users of Vecs, FilterVecs...
tsteven4 [Tue, 1 Mar 2022 13:40:32 +0000 (06:40 -0700)]
Use PImpl idiom to hide Format and Filter headers from users of Vecs, FilterVecs. (#854)

* use pimpl to hide vec implementation of formats.

* use PIMPL for filter_vecs.

* sort vecs and filter_vecs include files.

* workaround memory leak issues with pimpl vecs, filter_vecs.

with some compilers sanitize address and valgrind reported errors.
The number of errors varied with compiler/platform.
Valgrind and sanitize address found different errors as well.
MacOS with clang 13 ran error free.
Linux with gcc9 and clang 10 showed multiple errors.
The errors detected were related to the destruction of the Format
and Filter instances.

* move ctors/dtors back to h files.

* catch nuke_format up with vecs.

4 years agoconvert gdb to Format class (#850)
tsteven4 [Sat, 26 Feb 2022 16:04:22 +0000 (09:04 -0700)]
convert gdb to Format class (#850)

* convert gdb to Format class.

* const member funcs

4 years agofix Qt6 deprecation warning with QVariant::canConvert. (#860)
tsteven4 [Sat, 26 Feb 2022 14:34:13 +0000 (07:34 -0700)]
fix Qt6 deprecation warning with QVariant::canConvert. (#860)

4 years agosilence MSVC with definitions and options (#859)
tsteven4 [Sat, 26 Feb 2022 00:03:10 +0000 (17:03 -0700)]
silence MSVC with definitions and options (#859)

* deal with MSVC CRT security warnings in a consistent manner.

* correct cmake targets

* turn off some MSVC warnings for shapelib, zlib with cmake.

* fix msvc C4100 warning handling.

There was interference between our attempt to turn off the warning
with -wd4100 and win32-msvc mkspec changing the level of this
warning with -w34100.

4 years agofix various printf related issues. (#858)
tsteven4 [Fri, 25 Feb 2022 13:45:31 +0000 (06:45 -0700)]
fix various printf related issues. (#858)

* dont use posix printf argument reordering.

it isn't supported by MSVC printf, it requires _printf_p.

* fix lowranceusr printf errors on MSVC.

There are still multiple other errors with Qt6 on other platforms
related to the Qt5 -> Qt6 transition with sizes.

* fix size related printf issues in lowranceusr.

note the type of these variables is different between Qt5 and Qt6.

4 years agodelete unused field from legacy format ff_vecs_t (#857)
tsteven4 [Thu, 24 Feb 2022 13:04:02 +0000 (06:04 -0700)]
delete unused field from legacy format ff_vecs_t (#857)

4 years agouse Qt for os independent environmental variable access. (#856)
tsteven4 [Thu, 24 Feb 2022 13:02:08 +0000 (06:02 -0700)]
use Qt for os independent environmental variable access. (#856)

4 years agoMerge pull request #855 from GPSBabel/gpi_dbg
Robert Lipe [Thu, 24 Feb 2022 04:36:49 +0000 (22:36 -0600)]
Merge pull request #855 from GPSBabel/gpi_dbg

Move compile-time tests for debug message to runtime tests at -D3 or more.

4 years agoRemove duplicate definition and undefinition.
Robert Lipe [Thu, 24 Feb 2022 04:35:10 +0000 (22:35 -0600)]
Remove duplicate definition and undefinition.

4 years agoMove compile-time tests for debug message to runtime tests at -D3 or more.
Robert Lipe [Tue, 22 Feb 2022 23:43:53 +0000 (17:43 -0600)]
Move compile-time tests for debug message to runtime tests at -D3 or more.

4 years agofix garmin_gpi debug code. (#853)
tsteven4 [Mon, 21 Feb 2022 14:53:36 +0000 (07:53 -0700)]
fix garmin_gpi debug code. (#853)

https://github.com/GPSBabel/gpsbabel/pull/833/files introduced a bug with unique_ptr.

4 years agouse precompiled headers to speed up compile time (#851)
tsteven4 [Fri, 18 Feb 2022 18:04:01 +0000 (11:04 -0700)]
use precompiled headers to speed up compile time (#851)

* speed up compiles with precompiled headers.

* workaround QTBUG with precompiled headers and clang.

* avoid including QtCore.

* add ability to turn off precompiled headers.

4 years agofix include cycle in new garmin_gpi Format. (#852)
tsteven4 [Fri, 18 Feb 2022 17:25:44 +0000 (10:25 -0700)]
fix include cycle in new garmin_gpi Format. (#852)

4 years agoeliminate unnecessary string conversions.
tsteven4 [Sun, 13 Feb 2022 20:05:56 +0000 (13:05 -0700)]
eliminate unnecessary string conversions.

toString().to* is suspicious, QStringRef and QStringView probably
can be converted directly to *.

4 years agoconvert garmin gpi to Format class (#849)
tsteven4 [Mon, 7 Feb 2022 14:10:14 +0000 (07:10 -0700)]
convert garmin gpi to Format class (#849)

* convert garmin_gpi to Format class

* const member funcs

* flush out includes

4 years agoUse smart pointers over xmalloc and manual life management (#833)
GPSBabel [Sun, 6 Feb 2022 22:24:56 +0000 (16:24 -0600)]
Use smart pointers over xmalloc and manual life management (#833)

* Use reference counted pointers instead of managing our own.
Fixes a leak when using debug printing.

4 years agoupdate Qt 6 builds to 6.2.3 (#848)
tsteven4 [Tue, 1 Feb 2022 13:22:58 +0000 (06:22 -0700)]
update Qt 6 builds to 6.2.3 (#848)

4 years agoconvert text to Format class (#847)
tsteven4 [Sun, 30 Jan 2022 16:19:16 +0000 (09:19 -0700)]
convert text to Format class (#847)

4 years agoconvert humminbird to Format class. (#840)
tsteven4 [Sun, 30 Jan 2022 14:46:32 +0000 (07:46 -0700)]
convert humminbird to Format class. (#840)

* convert humminbird to Format class.

* const member functions, constexpr

* sorting members, easing off on forced init of auto variables.

* iwyu

4 years agoconvert f90g_track to Format class. (#844)
tsteven4 [Sun, 30 Jan 2022 13:42:50 +0000 (06:42 -0700)]
convert f90g_track to Format class. (#844)

4 years agoconvert tef xml to Format class (#842)
tsteven4 [Sat, 29 Jan 2022 22:19:10 +0000 (15:19 -0700)]
convert tef xml to Format class (#842)

* convert tef_xml to Format class.

* fix mem leak

* cap comment.

4 years agoconvert Mapbar track to Format class (#841)
tsteven4 [Sat, 29 Jan 2022 21:45:30 +0000 (14:45 -0700)]
convert Mapbar track to Format class (#841)

* convert mapbar_track to Format class.

* const member funcs

4 years agoconvert mapfactor to Format class (#843)
tsteven4 [Sat, 29 Jan 2022 21:09:48 +0000 (14:09 -0700)]
convert mapfactor to Format class (#843)

* convert mapfactor to Format class.

* const memb funcs.

4 years agomake kml skip and ignore list constexpr. (#846)
tsteven4 [Sat, 29 Jan 2022 20:53:46 +0000 (13:53 -0700)]
make kml skip and ignore list constexpr. (#846)

4 years agoConvert gtrnctr to Format class (#839)
tsteven4 [Sat, 29 Jan 2022 20:28:30 +0000 (13:28 -0700)]
Convert gtrnctr to Format class (#839)

* Convert gtrnctr to Format class

* fix includes

* make ingorelist const

4 years agoConvert gtrnctr to Format class (#839)
tsteven4 [Sat, 29 Jan 2022 20:24:46 +0000 (13:24 -0700)]
Convert gtrnctr to Format class (#839)

* Convert gtrnctr to Format class

* fix includes

* make ingorelist const

4 years agoallow ignore list and skip list to be const. (#845)
tsteven4 [Sat, 29 Jan 2022 19:51:59 +0000 (12:51 -0700)]
allow ignore list and skip list to be const. (#845)

4 years agoconvert exif format to Format class (#838)
tsteven4 [Sat, 29 Jan 2022 17:04:51 +0000 (10:04 -0700)]
convert exif format to Format class (#838)

* convert exif to Format class.

* exif member functions static, const.

* default initialize exif data members.

* move constant definition

4 years agoconvert html to Format class. (#837)
tsteven4 [Sat, 29 Jan 2022 16:31:01 +0000 (09:31 -0700)]
convert html to Format class. (#837)

* convert html to Format class.

* add default init.

* capability comment

4 years agoconvert teletype to Format class. (#836)
tsteven4 [Sat, 29 Jan 2022 15:59:14 +0000 (08:59 -0700)]
convert teletype to Format class. (#836)

* convert teletype to Format class.

* add default init.

4 years agoWintec tes format (#835)
tsteven4 [Sat, 29 Jan 2022 15:27:03 +0000 (08:27 -0700)]
Wintec tes format (#835)

* convert wintec_tes for Format class.

* add new h file.

* add default init.

4 years agomove skytraq to Format class (#834)
tsteven4 [Sat, 29 Jan 2022 14:50:12 +0000 (07:50 -0700)]
move skytraq to Format class (#834)

* convert skytraq to Format class.

* make skytraq member functions const, use constexpr.

* skytraq format class fiddling

* more skytraq fiddling.

* whitespace cleanup

* rename skytraq base functions.

* fix rename, includes.

* capability comments.

4 years agoFix ODR violations discovered when using -flto. (#824)
tsteven4 [Wed, 26 Jan 2022 00:06:49 +0000 (17:06 -0700)]
Fix ODR violations discovered when using -flto. (#824)

The fedora build shows these:
skytraq.cc:666:8: warning: type 'struct read_state' violates the C++ One Definition Rule [-Wodr]
wbt-200.cc:127:8: note: a different type is defined in another translation unit
brauniger_iq.cc:30:6: warning: type 'state_t' violates the C++ One Definition Rule [-Wodr]
igc.cc:150:6: note: an enum with different value name is defined in another translation unit

However, even with link time optimization I was unable to observe a problem, i.e. testo passes.

There is a relevant note in https://en.cppreference.com/w/cpp/language/definition, see the note
about using unnamed namespaces to resolve this issue.

Also note the use of unnamed namespaces is not recommended in header files,
https://wiki.sei.cmu.edu/confluence/display/cplusplus/DCL59-CPP.+Do+not+define+an+unnamed+namespace+in+a+header+file

4 years agocorrect color palette issues in gpi writer. (#828)
tsteven4 [Wed, 26 Jan 2022 00:06:35 +0000 (17:06 -0700)]
correct color palette issues in gpi writer. (#828)

4 years agosimpify unix world conditionals in qmake files. (#831)
tsteven4 [Wed, 26 Jan 2022 00:06:12 +0000 (17:06 -0700)]
simpify unix world conditionals in qmake files. (#831)

4 years agoReplace which by POSIX command -v (#829)
Jochen Sprickerhof [Mon, 24 Jan 2022 14:33:01 +0000 (15:33 +0100)]
Replace which by POSIX command -v (#829)

4 years agoa little lighter swing of the ax. (#826)
tsteven4 [Sat, 22 Jan 2022 21:47:44 +0000 (14:47 -0700)]
a little lighter swing of the ax. (#826)

COPYING.txt is used by packaging.

4 years agofix cmake status messages (#825)
tsteven4 [Sat, 22 Jan 2022 21:19:02 +0000 (14:19 -0700)]
fix cmake status messages (#825)

4 years agorc1 for 1.8.0 release (#814)
tsteven4 [Wed, 19 Jan 2022 21:08:42 +0000 (14:08 -0700)]
rc1 for 1.8.0 release (#814)

* rc1 for 1.8.0 release

* update gui about copyright.

* update translations again.

4 years agoremove traces of autotools. (#822)
tsteven4 [Wed, 19 Jan 2022 20:31:26 +0000 (13:31 -0700)]
remove traces of autotools. (#822)

4 years agofix donate dialog. (#821)
tsteven4 [Wed, 19 Jan 2022 20:10:08 +0000 (13:10 -0700)]
fix donate dialog. (#821)

enable hypertext link.
fix overelapping text on linux, windows.
fix "never show this message again".
fix donate hypertext link target.

4 years agofinish killing GUI charset handling (#819)
tsteven4 [Wed, 19 Jan 2022 19:23:27 +0000 (12:23 -0700)]
finish killing GUI charset handling (#819)

* finish killing gui charset handling.

* more char set dead code cleaning

* even more dead code buried.

4 years agominor cleanups. (#820)
tsteven4 [Wed, 19 Jan 2022 19:18:44 +0000 (12:18 -0700)]
minor cleanups. (#820)

empty statements, unreachable code, member funct can be const.

4 years agocapture git hash on github action builds. (#816)
tsteven4 [Tue, 11 Jan 2022 15:07:24 +0000 (08:07 -0700)]
capture git hash on github action builds. (#816)

* capture git hash on github action builds.

* modernize version sha display

* delete stray space

4 years agotweak cmake org target. (#815)
tsteven4 [Thu, 6 Jan 2022 22:40:29 +0000 (15:40 -0700)]
tweak cmake org target. (#815)

4 years agoMove destinator to QDateTime from ctime (#796)
Robert Lipe [Thu, 6 Jan 2022 03:31:34 +0000 (22:31 -0500)]
Move destinator to QDateTime from ctime (#796)

* Move destinator from ctime to QDateTime.

This feels a bit like rearranging Titanic chairs, but I needed to reduce
callers of strptime. This is another format I think we've rewritten a
couple of times without evidence of users. Most of the traffic in the last
ten years has been complaints of it not working

Destinator, consider yourself warned. You're on the death watch...

4 years agoRemove trailing space in xmldoc/.
Robert Lipe [Thu, 6 Jan 2022 02:38:56 +0000 (20:38 -0600)]
Remove trailing space in xmldoc/.
 sed --in-place 's/[[:space:]]\+$//' $*

 This is only the xmldoc part of 9935496f5c8c772ea11785ff489768dbb2de5d4f

4 years agoFix build on Catalina, HTML doc formatting improvements (#759)
GPSBabel [Thu, 6 Jan 2022 02:20:05 +0000 (20:20 -0600)]
Fix build on Catalina, HTML doc formatting improvements (#759)

* PDF maker: format screen and input same. Shrink padding slightly.

4 years agoonly support changing gpsbabel.org location at build generation time. (#813)
tsteven4 [Thu, 6 Jan 2022 00:36:02 +0000 (17:36 -0700)]
only support changing gpsbabel.org location at build generation time. (#813)

4 years agoadd dg100 heartbeat. (#812)
tsteven4 [Wed, 5 Jan 2022 13:13:29 +0000 (06:13 -0700)]
add dg100 heartbeat. (#812)

4 years agoadd support for cmake build options (#809)
tsteven4 [Tue, 4 Jan 2022 20:19:56 +0000 (13:19 -0700)]
add support for cmake build options (#809)

* add initial support for cmake build options.

including basic library configuration.
Unlike our qmake build it generates and links with static libraries if
we are using our internally supplied copies.  The configuration options
are not as sophisticated as in our qmake build.  The configuration of
zlib will likely be acceptable as cmake provides support via findZLIB.
The configuration of shapelib and libusb-1.0 likely will likely need to
be enhanced.

* fix typo

* mimic qmake library searches.

too much energy went into verification with packagers that the
qmake options were sufficient for their needs.

* tweak library searches

4 years agoadd intial support for CTest (#808)
tsteven4 [Mon, 3 Jan 2022 15:57:07 +0000 (08:57 -0700)]
add intial support for CTest (#808)

* add CTest tests.

* add note about improvements for ctest.

* running xmlwf and utf8bom tests is appropriate for single tests.

4 years agouse hierarchy with cmake. (#807)
tsteven4 [Sun, 2 Jan 2022 23:51:03 +0000 (16:51 -0700)]
use hierarchy with cmake. (#807)

* use hierarchy with cmake.

* adjust cmake test script for hierarchy.

the default target with cmake builds both the CLI and the GUI.
alternatively, "cmake --build . --target gpsbabel" to build just the
CLI or "cmake --build . --target GPSBabelFE|gpsbabelfe to build just
the GUI.

* detect attempts to generate a build system from a subdirectory.

* fix shellcheck issues.

4 years agomake gbversion.h, setup.iss generated files. (#806)
tsteven4 [Sun, 2 Jan 2022 19:22:11 +0000 (12:22 -0700)]
make gbversion.h, setup.iss generated files. (#806)

* make gbversion.h, setup.iss generated files.

add cmake documentation targets.

* work on check.

* simplify parameter passing to test scripts.

* cmake test work.

run vtesto in parallel.
fix valgrind decision making in testo.
fix test for gpsbabel executable with blanks in path.

* update vtesto for cmake.

* simplify option passing for testo.

* simplify valgrind detection in testo.

* fix testo bug.

* add ubuntu cmake build.

* fix workflow

* align gui pro and CMakeLists.

and use target properties

4 years agofix bad merge in mtk_logger. (#805)
tsteven4 [Thu, 30 Dec 2021 01:35:18 +0000 (18:35 -0700)]
fix bad merge in mtk_logger. (#805)

1. Jan 01, 2017 269c55eb5 Robert fixes ftruncate issue.
2. Jan 23, 2017 604178aa8 HarelM fixes same a different way.
3. Jan 25, 2017 8456d1d21 Robert merges resulting in duplicate fixes.

I am backing out HarelM's fix.

4 years agoEliminate internal_styles.cc completely (#804)
tsteven4 [Wed, 29 Dec 2021 14:48:33 +0000 (07:48 -0700)]
Eliminate internal_styles.cc completely (#804)

* Eliminate internal_styles.cc entirely.

* add missing qrc file.

* fix resource compilation with ninja.

* fix potential detach.

* kill empty statement

* update qrc file formatting with QtCreator resource editor.

4 years agomigrate from directory level cmake commands to target commands. (#802)
tsteven4 [Mon, 27 Dec 2021 13:36:27 +0000 (06:36 -0700)]
migrate from directory level cmake commands to target commands. (#802)

* migrate from directory level cmake commands to target commands.

fix a few bugs with our CMakeLists:

set WIN32 for gui target.  remove _CONSOLE, it's obsolete.

when undefining UNICODE, also undefine _UNICODE.  it's not clear to
me we have a sensitivity to UNICODE/_UNICODE.

take optimization flags out of CMakeLists, rely on CMAKE_BUILD_TYPE
to select appropriate flags.

don't force ZLIB_INHIBITED to be undefined on windows.

add cmake support for some of our configuration options:
disable-mappreview, embed_map, embed_translations.

* fix duplicated code in gui/CMakeLists.txt

* spelling fix for INSTALL.

4 years agoSpelling fix in doc.
Robert Lipe [Sun, 26 Dec 2021 05:10:47 +0000 (00:10 -0500)]
Spelling fix in doc.

4 years agoMerge branch 'master' of https://github.com/gpsbabel/gpsbabel
Robert Lipe [Sun, 26 Dec 2021 05:08:26 +0000 (00:08 -0500)]
Merge branch 'master' of https://github.com/gpsbabel/gpsbabel

4 years agoSpelling fix in interpolate: positve -> positive
Robert Lipe [Sun, 26 Dec 2021 05:07:49 +0000 (00:07 -0500)]
Spelling fix in interpolate: positve -> positive

4 years agotake out some trash. (#799)
tsteven4 [Fri, 17 Dec 2021 21:42:11 +0000 (14:42 -0700)]
take out some trash. (#799)

old configure scripts.
mingw stuff.

4 years agoremove misleading, dangerous and unneeded redefinitions (#798)
tsteven4 [Thu, 16 Dec 2021 23:15:18 +0000 (16:15 -0700)]
remove misleading, dangerous and unneeded redefinitions (#798)

for snprintf, vsnprintf.

delete an unneeded MSVC compiler pragma.

4 years agoretire is_fatal for better static analysis (#797)
tsteven4 [Thu, 16 Dec 2021 22:00:12 +0000 (15:00 -0700)]
retire is_fatal for better static analysis (#797)

* join is_fatal lines in prep for transformation.

1,$g/is_fatal.*[^;]$/j

* replace is_fatal with if() fatal().

this allows better static analysis.

sed -i '1,$s/^\( *\)is_fatal *( *\(.*\), *MYNAME\([^;]*\);$/\1if (\2) {\n\1  fatal(MYNAME\3;\n\1}/' $file
sed -i '1,$s/^\( *\)is_fatal *( *\(.*\), *"\([^;]*\);$/\1if (\2) {\n\1  fatal("\3;\n\1}/' $file

* manual delete extra parenthesis.

4 years agoPossible unterminated string in humminbird (#794)
GPSBabel [Thu, 16 Dec 2021 04:48:03 +0000 (23:48 -0500)]
Possible unterminated string in humminbird (#794)

Leave space for null terminator when copying string into fixed-size buffer.

4 years agoDeprecate navicache (#793)
Robert Lipe [Thu, 16 Dec 2021 03:22:37 +0000 (22:22 -0500)]
Deprecate navicache (#793)

* Deprecate navicache.

4 years agouse streams for garmin_fit debug messages. (#795)
tsteven4 [Wed, 15 Dec 2021 23:56:05 +0000 (16:56 -0700)]
use streams for garmin_fit debug messages. (#795)

* use streams for garmin_fit debug messages.

This eliminates the Qt 6 warnings related to the change in types
for container sizes and the format specifier.

* retire debug_print()

* make logging debug single arg ctors explicit

4 years agoretire some csv char based routines. (#790)
tsteven4 [Mon, 13 Dec 2021 16:27:55 +0000 (09:27 -0700)]
retire some csv char based routines. (#790)

* retire some csv char based routines.

The last csv_lineparse user, garmin_txt, is converted to csv_linesplit.

xcsv_parse_val converted to use csv_stringtrim(QString,QString,int),
eliminating the other overloads.

xcsv_parse_style_line parsing of FIELD_DELIMITER, FIELD_ENCLOSER,
RECORD_DELIMITER and BADCHARS updated to use the above overload of
csv_stringtrim.  FIELD_DELIMITER, FIELD_ENCLOSER and RECORD_DELIMITER
changed to trim, with a double quote enclosure,  before character substitution.
There was a subtle bug in csvs_stringtrim(char, char, int).  When trimming
a source that was all white space the first white space character would
be retained, while others would be trimmed.  This did occur with CRNEWLINE,
but the bug allowed other substitutions to work, e.g. SPACE, NEWLINE, TAB, CR.

A small bug in csv_stringclean was fixed.  If the to_nuke was empty an invalid
regular expression was created.

* save a few string conversions.

* and a few more conversions saved.

* review comments incorporated in garmin_txt reader.

* fix minor bug accumulating badchars.

4 years agofix xcsv parse_style formatting. (#789)
tsteven4 [Sat, 11 Dec 2021 19:13:54 +0000 (12:13 -0700)]
fix xcsv parse_style formatting. (#789)

the blank line between the else and the if confused astyle.

4 years agosupport qt6 with cmake in windows build script. (#788)
tsteven4 [Fri, 10 Dec 2021 19:42:50 +0000 (12:42 -0700)]
support qt6 with cmake in windows build script. (#788)

4 years agoorganize source files in GPSBabel.pro, CMakeLists.text` (#787)
tsteven4 [Fri, 10 Dec 2021 17:26:36 +0000 (10:26 -0700)]
organize source files in GPSBabel.pro, CMakeLists.text` (#787)

* organize files in GPSBabel.pro and CMakeLists.tst

This makes it easier to compare the two, and easier to see what
changed when nuking things.

* fix for lack of continuation line

* update nuke_format for sources on their own lines.

delete MSVC project and solution files.  The project files should
be generated with "qmake -tp vc GPSBabel.pro".  MSVC will create
the solution file if needed.

4 years agoswitch gbfile supplemental plane test to nmea. (#786)
tsteven4 [Thu, 9 Dec 2021 22:36:54 +0000 (15:36 -0700)]
switch gbfile supplemental plane test to nmea. (#786)

4 years agoRemove compegps, cst, g7towin, gopal, gpsman, gpsutil, jogmap, jtr, maggeo, mapsend...
GPSBabel [Thu, 9 Dec 2021 21:36:24 +0000 (16:36 -0500)]
Remove compegps, cst, g7towin, gopal, gpsman, gpsutil, jogmap, jtr, maggeo, mapsend, nm4, pcx, pocketfms, skyforce, stmsdf, stmwpp, tiger, vpl, vidaone, vitosmt, vitovtt, wfff, and yahoo. (#785)

* Remove compegps, cst, g7to2in, gopal, gpsutil, jtr, maggeo, mapsend,
nm4, pcx, pocketfms, skyforce, stmsdf, stmwpp, tiger, vpl, wfff, and yahoo.

* Missing reference files from above.

* Change classic-3 test to read gzipped NMEA instead of deprecated formats.

* Drop gpsutil from tomtom test as it tested nothing unique.

* Remove gpsman test. It's a unicsv test and this tests nothing of value.

* Eliminate use of gpsutil in gpx test; it covered no unique paths.

* Update other GPSBabel.pro :-(

* Update Cmaeklists enough for successful Mac compile

* Cleanup internal doc references to newly retired formats.

* Scrub (and commit) the remaining doc changes for what we just deleted.

* Squashed commit of the following:

commit 40429dd3db113c30652e8e66b2a38237f1edbf39
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Mon Dec 6 16:37:53 2021 -0700

    fix dotnet time conversion (#784)

commit 54b013699f755b9a34f730c9f90729a2961b2704
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Mon Dec 6 07:13:44 2021 -0700

    Kill CarteSurTable format. (#783)

    Apparently it hasn't ever been used.  Our sample has coordinates in UTM,
    but we have been interpretting them as degrees/100000.  "Le pic du midi"
    referred to in the sample is The Pic du Midi de Bigorre.

commit 1ed58953b7a50c9a5e994e3d8d35055bef007fcd
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Sun Dec 5 15:30:05 2021 -0700

    harden gbfgetcstr, gbfgetpstr. (#782)

    Hangs were detected with afl and the gdb reader and gbfgetcstr.  One such
    hang reads a fuzzed 32 bit url count with FREAD_i32, and then proceeds
    to fetch that many strings with FREAD_CSTR_AS_QSTR.  This results in
    fetches from beyond EOF that are undetected.  gbfgetcstr_old is modified
    to throw a fatal error if reading is attempted beyond EOF.

    A similar failure was not detected with gbfgetpstr, but it is also
    modified to throw a fatal error if reading is attempted beyond EOF.

commit 85502cb3fd168287a24c5b14fa038cc0f02922eb
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Fri Dec 3 07:16:02 2021 -0700

    hopefully the real fix for garmin_xt tool issues. (#781)

    Fix LGTM detected "Comparison between i of type uint8_t and Count of
    wider type int."

    This latest find by LGTM is one in a long series of issue detections by
    various tools.  However, close analysis reveals the previous solutions
    to these deteced issues didn't find or fix the real root issues:

    commit 233f3c8b0bf69397403b6c1f29af8e10a65a8928, 10/22/2013, Pad
    internal buffer to appease -fsanitize=address.  While the fix appeased
    the sanitizer, it didn't fix the root problem.  The root problem was
    a bug in the original translation of format_garmin_xt_decrypt_trk_blk
    when converting to zero-based array indexing.

    commit dcf0dd85a71c6fa5fc3dac72520c2070ba051108, 7/8/2015, A bunch of
    busy work to satisfy hyperactive warnings in newer GCC builds.  Again,
    the fix didn't fix the root problem.  The root problem was a bug in the
    original translation of format_garmin_xt_proc_strk.  This bug resulted
    in a mismatch between our test output and that of the original project.
    In our output the timestamp of the last two points in a track was
    identical.

    This fix results in our output matching the reference file of the original
    project (with allowances for precision).

commit 727df5268184fb42a14963002cc77c5c9cf5d692
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Wed Dec 1 17:17:40 2021 -0700

    retire cet (#777)

    * teach mkshort to split utf8 on grapheme boundaries.

    and retire some cet functions.

    * add the grapheme test.

    * wean gbfile from cet.

    * restore cet.cc, cet.h in prepare for deprecation.

    * retire cet.cc, cet.h

    * drop attempted support of \r line endings in gbfgetutf16str.

    * add test of surrogate pairs for gbfgetutf16str.

    * fix test

commit 2371d119a57005dd7db23dfcfe576e7608074a67
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Wed Dec 1 13:11:33 2021 -0700

    add lgtm configuration file (#780)

commit 16820556e11349523ee7094dc9cd504515070a27
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Wed Dec 1 12:40:38 2021 -0700

    move Qt6 CI builds to 6.2.2. (#779)

commit d377ef65af27e5a0e48d8b4017cc76517e305dfc
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Wed Dec 1 06:26:08 2021 -0700

    convert arcdist, polygon, and xcsv to use gpsbabel::TextStream instead of gbfgetstr (#778)

    * read style files with a textstream.

    * use gpsbabel::textstream instead of gbfile.

commit f2da18dc2edba69639e51fbe3c7ef8ef161d8eea
Merge: 41cdf06b 23414450
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Tue Nov 30 15:46:26 2021 -0700

    Merge pull request #776 from tsteven4/nits3

    miscellaneous minor fixes III

commit 41cdf06b34975cbb1b2b1fb848002465803ce280
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Mon Nov 29 07:29:41 2021 -0700

    move Qt 5.12 CI builds to 5.12.12 (#774)

commit 2341445085d9f3c3b354c17f9f2527f5de673ee1
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Sun Nov 28 07:44:28 2021 -0700

    remove support for non standard entity replacements.

    This was disabled in d47e364f5 August 29, 2005.

commit dd56f42f5ce0a3ade1ce7b377a1da7a718f037ec
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Sat Nov 27 23:37:59 2021 -0700

    fix lgtm detected ill-defined for loop.

commit 59a325d14074bbd9abe32b165b1e10bbb5c69ffa
Merge: 56c86e2b 07694790
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Sat Nov 27 17:45:30 2021 -0700

    Merge pull request #772 from tsteven4/lgtm

    miscellaneous minor fixes

commit 0769479009f18e10eb131317710ded627db38482
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Fri Nov 26 14:42:42 2021 -0700

    sequester temporary style files in TMPDIR

commit 3f38cef6bcede6f58cd4e91fb796e84cc978dd5c
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Thu Nov 25 10:09:04 2021 -0700

    prefer rte_waypt_ct() over waypoint_list.count().

    this provides some insulation from the underlying WaypointList
    container.

commit bdd7865e7b4ee5ec1b61e94abd9ce63b4eb71aaf
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Thu Nov 25 08:37:57 2021 -0800

    sort SOURCES and HEADERS in build.

    this gives a reasonable initial project view in Xcode.
    this gives a resaonable order to compilation.

commit dd735b6e8443965d1e5cf47a4b83daf72fa4370c
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Wed Nov 24 11:11:15 2021 -0800

    minor correction to resample doc.

commit f7d3d60b1ac516061c73a05acb4f93b66def95c9
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Wed Nov 24 10:30:58 2021 -0800

    further minimize xcsv_get_char_from_constant_table

commit f483fc350f8aab14a54de7a71374c16f0988f000
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Wed Nov 24 09:51:14 2021 -0800

    use list initialization to construct xcsv char map table.

commit d62f479f0767cd545165ad1fcd1b734fe33eb1c2
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Wed Nov 24 08:52:22 2021 -0800

    more nits.

commit b2957b54db7d208183ab862990c06574a6c088c0
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Tue Nov 23 16:09:14 2021 -0800

    limit variable scope, found by LGTM.

    Poor global variable name 'ops'. Prefer longer, descriptive names for globals (eg. kMyGlobalConstant, not foo).

commit 56c86e2bc6ff0413da1057e144a3e899b320f8a8
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Tue Nov 23 09:40:30 2021 -0700

    fix parsing of nmea hms fields. (#770)

commit fa20976bcbedc72cd37100fa40c67a9d299b1b0e
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Sun Nov 21 14:04:55 2021 -0700

    Introduce resampling filter and nvectors. (#763)

    * Introduce resampling filter and nvectors.

    * use ellipsoid model with nvectors.

    the code had been forcing a spherical earth model to match the
    existing grtcirc.cc calculations.

commit 1a422a68320c6c5449bfee0f28a8da0a65697168
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Sun Nov 21 14:04:03 2021 -0700

    improve string handling, fix 9 year old FIXME. (#769)

commit e09f7fe5996073abf414b3bc2897c8dd84d2429a
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Sun Nov 21 13:34:23 2021 -0700

    support generation of xcode project files with qmake. (#760)

commit ff76e254a269c772da3cf7df94b1cab6b8dab1dc
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Sat Nov 20 08:05:01 2021 -0700

    update fit locations test with improved sample (#767)

    * update fit test with improved sample.

    * reference file mode correction.

commit 67ad13daaaf8d3dee5a1c7643d9c489ef7bc125d
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Fri Nov 19 06:48:53 2021 -0700

    Pick up fit locations test case (#766)

    * Add support for Locations.fit files

    * patch by tsteven4 to address review comments

    * Add a test case for Locations.fit files from Garmin devices

Co-authored-by: Fabrizio Gennari <fabrizio.ge@tiscali.it>
commit 368ad391c3a737058dec9fe82e3c33925add9027
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Thu Nov 18 16:40:49 2021 -0700

    add test for fit Locations(Lctns) files. (#765)

    * add test for fit Locations(Lctns) files.

    * fix new bug with change in Qt6 behavior for fit.

commit 871efe320b27bacecd7c98e9f7c0236b83ed9122
Author: fabzzap <fabrizio.ge@tiscali.it>
Date:   Thu Nov 18 22:07:59 2021 +0100

    Add support for Locations.fit files (#762)

    * Add support for Locations.fit files

    * patch by tsteven4 to address review comments

commit 2504d97daa490ddb4d0071e219fc4efbff98343a
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Wed Nov 17 08:52:08 2021 -0700

    Eliminiate redundant route_head data member (#764)

    eliminate redundant route_head data member rte_waypt_ct, replacing it with a member function rte_waypt_ct() that gets the count from the waypoint_list container.

commit 0beebdd5ecd9cadbb0219a5d9682a240a38a2170
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Mon Nov 8 05:22:30 2021 -0700

    kill xmap, xmap2006. (#758)

    * kill xmap, xmap2006.

    * dprecate obsolete readme.

commit 6593293ad8fee54764a9905064d4a647e553cd3f
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Fri Nov 5 15:13:05 2021 -0600

    kill xmapwpt. (#757)

    note is was wounded previously, see #754.

commit 7b6235ce627e9abac6c7ea34b9560935ad56483d
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Fri Nov 5 13:01:00 2021 -0600

    add fedora 35 to CI. (#756)

commit c3bc9c804ec84292f7a851ddbfba92f3c544e3ac
Author: tsteven4 <13596209+tsteven4@users.noreply.github.com>
Date:   Fri Nov 5 11:17:45 2021 -0600

    serial port names (#755)

    * try qserialportinfo again.

    * update docker images with qt serial port.

    * enhance windows device text to match device manager on windows.

* gbfile test can't depend on PCX any longer.\n Might be a hole in coverage.

* Remove vitosmt and vitovtt.

* Remove jogmap vidaone yahoo

* Remove gpsman.

* Remove more crumbs of g7towin.

* Run automated cleanup on the list of files in commit message to clean up last pieces.

* keep gpsutil.h in GPSBabel.pro

Co-authored-by: Robert Lipe <robertlipe@gmail.com>
4 years agoUpdate nuke_format so that it's safe (enough) to handle the bulk deletion
Robert Lipe [Thu, 9 Dec 2021 06:59:15 +0000 (01:59 -0500)]
Update nuke_format so that it's safe (enough) to handle the bulk deletion
to get rid of most of our older and unused formats. Some hand tuning may
still be needed

4 years agoAdd nuke_format, a tool to vaporize a format. Tested on yahoo and mapsend.
Robert Lipe [Wed, 8 Dec 2021 23:03:55 +0000 (18:03 -0500)]
Add nuke_format, a tool to vaporize a format. Tested on yahoo and mapsend.

4 years agofix dotnet time conversion (#784)
tsteven4 [Mon, 6 Dec 2021 23:37:53 +0000 (16:37 -0700)]
fix dotnet time conversion (#784)

4 years agoKill CarteSurTable format. (#783)
tsteven4 [Mon, 6 Dec 2021 14:13:44 +0000 (07:13 -0700)]
Kill CarteSurTable format. (#783)

Apparently it hasn't ever been used.  Our sample has coordinates in UTM,
but we have been interpretting them as degrees/100000.  "Le pic du midi"
referred to in the sample is The Pic du Midi de Bigorre.

4 years agoharden gbfgetcstr, gbfgetpstr. (#782)
tsteven4 [Sun, 5 Dec 2021 22:30:05 +0000 (15:30 -0700)]
harden gbfgetcstr, gbfgetpstr. (#782)

Hangs were detected with afl and the gdb reader and gbfgetcstr.  One such
hang reads a fuzzed 32 bit url count with FREAD_i32, and then proceeds
to fetch that many strings with FREAD_CSTR_AS_QSTR.  This results in
fetches from beyond EOF that are undetected.  gbfgetcstr_old is modified
to throw a fatal error if reading is attempted beyond EOF.

A similar failure was not detected with gbfgetpstr, but it is also
modified to throw a fatal error if reading is attempted beyond EOF.

4 years agohopefully the real fix for garmin_xt tool issues. (#781)
tsteven4 [Fri, 3 Dec 2021 14:16:02 +0000 (07:16 -0700)]
hopefully the real fix for garmin_xt tool issues. (#781)

Fix LGTM detected "Comparison between i of type uint8_t and Count of
wider type int."

This latest find by LGTM is one in a long series of issue detections by
various tools.  However, close analysis reveals the previous solutions
to these deteced issues didn't find or fix the real root issues:

commit 233f3c8b0bf69397403b6c1f29af8e10a65a8928, 10/22/2013, Pad
internal buffer to appease -fsanitize=address.  While the fix appeased
the sanitizer, it didn't fix the root problem.  The root problem was
a bug in the original translation of format_garmin_xt_decrypt_trk_blk
when converting to zero-based array indexing.

commit dcf0dd85a71c6fa5fc3dac72520c2070ba051108, 7/8/2015, A bunch of
busy work to satisfy hyperactive warnings in newer GCC builds.  Again,
the fix didn't fix the root problem.  The root problem was a bug in the
original translation of format_garmin_xt_proc_strk.  This bug resulted
in a mismatch between our test output and that of the original project.
In our output the timestamp of the last two points in a track was
identical.

This fix results in our output matching the reference file of the original
project (with allowances for precision).

4 years agoretire cet (#777)
tsteven4 [Thu, 2 Dec 2021 00:17:40 +0000 (17:17 -0700)]
retire cet (#777)

* teach mkshort to split utf8 on grapheme boundaries.

and retire some cet functions.

* add the grapheme test.

* wean gbfile from cet.

* restore cet.cc, cet.h in prepare for deprecation.

* retire cet.cc, cet.h

* drop attempted support of \r line endings in gbfgetutf16str.

* add test of surrogate pairs for gbfgetutf16str.

* fix test

4 years agoadd lgtm configuration file (#780)
tsteven4 [Wed, 1 Dec 2021 20:11:33 +0000 (13:11 -0700)]
add lgtm configuration file (#780)

4 years agomove Qt6 CI builds to 6.2.2. (#779)
tsteven4 [Wed, 1 Dec 2021 19:40:38 +0000 (12:40 -0700)]
move Qt6 CI builds to 6.2.2. (#779)

4 years agoconvert arcdist, polygon, and xcsv to use gpsbabel::TextStream instead of gbfgetstr...
tsteven4 [Wed, 1 Dec 2021 13:26:08 +0000 (06:26 -0700)]
convert arcdist, polygon, and xcsv to use gpsbabel::TextStream instead of gbfgetstr (#778)

* read style files with a textstream.

* use gpsbabel::textstream instead of gbfile.

4 years agoMerge pull request #776 from tsteven4/nits3
tsteven4 [Tue, 30 Nov 2021 22:46:26 +0000 (15:46 -0700)]
Merge pull request #776 from tsteven4/nits3

miscellaneous minor fixes III

4 years agomove Qt 5.12 CI builds to 5.12.12 (#774)
tsteven4 [Mon, 29 Nov 2021 14:29:41 +0000 (07:29 -0700)]
move Qt 5.12 CI builds to 5.12.12 (#774)

4 years agoremove support for non standard entity replacements.
tsteven4 [Sun, 28 Nov 2021 14:44:28 +0000 (07:44 -0700)]
remove support for non standard entity replacements.

This was disabled in d47e364f5 August 29, 2005.

4 years agofix lgtm detected ill-defined for loop.
tsteven4 [Sun, 28 Nov 2021 06:37:59 +0000 (23:37 -0700)]
fix lgtm detected ill-defined for loop.

4 years agoMerge pull request #772 from tsteven4/lgtm
tsteven4 [Sun, 28 Nov 2021 00:45:30 +0000 (17:45 -0700)]
Merge pull request #772 from tsteven4/lgtm

miscellaneous minor fixes

4 years agosequester temporary style files in TMPDIR
tsteven4 [Fri, 26 Nov 2021 21:42:42 +0000 (14:42 -0700)]
sequester temporary style files in TMPDIR

4 years agoprefer rte_waypt_ct() over waypoint_list.count().
tsteven4 [Thu, 25 Nov 2021 17:09:04 +0000 (10:09 -0700)]
prefer rte_waypt_ct() over waypoint_list.count().

this provides some insulation from the underlying WaypointList
container.

4 years agosort SOURCES and HEADERS in build.
tsteven4 [Thu, 25 Nov 2021 16:37:57 +0000 (08:37 -0800)]
sort SOURCES and HEADERS in build.

this gives a reasonable initial project view in Xcode.
this gives a resaonable order to compilation.

4 years agominor correction to resample doc.
tsteven4 [Wed, 24 Nov 2021 19:11:15 +0000 (11:11 -0800)]
minor correction to resample doc.

4 years agofurther minimize xcsv_get_char_from_constant_table
tsteven4 [Wed, 24 Nov 2021 18:30:58 +0000 (10:30 -0800)]
further minimize xcsv_get_char_from_constant_table

4 years agouse list initialization to construct xcsv char map table.
tsteven4 [Wed, 24 Nov 2021 17:51:14 +0000 (09:51 -0800)]
use list initialization to construct xcsv char map table.

4 years agomore nits.
tsteven4 [Wed, 24 Nov 2021 16:52:22 +0000 (08:52 -0800)]
more nits.

4 years agolimit variable scope, found by LGTM.
tsteven4 [Wed, 24 Nov 2021 00:09:14 +0000 (16:09 -0800)]
limit variable scope, found by LGTM.

Poor global variable name 'ops'. Prefer longer, descriptive names for globals (eg. kMyGlobalConstant, not foo).